<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"            
      xmlns:jb="http://java.sun.com/jsf/composite/componentes"
      xmlns:p="http://primefaces.org/ui">

    <ui:composition template="/pages/core/plantilla/plantillaPrincipal.xhtml">
        <ui:define name="contenido">   
            <SCRIPT language="JavaScript" type="text/javascript">
                function visualizarOrigen(xhr, status, args) {                     
                    if(args.validationFailed) {  
     
                    } else {                
                        if(args.CallbackParam == 1)
                            carDialogInfoMov.show();  
                        if(args.CallbackParam == 2)
                            carDialogInfoIntercambio.show(); 
                        if(args.CallbackParam == 3)
                            carDialogTransferenciaUM.show();
                    }  
                }
            </SCRIPT>
            <h:form onsubmit="return checkSubmit();"  id="frmPrincipal">
                <p:panel id="pnlPrincipal" header="#{i18n['panel.titulo.producto']} / #{sessionMBean.titulo} #{productoMBean.dto.id}" style="#{applicationMBean.estiloTitulo}">
                    <p:tabView id="tabPrincipal" style="#{applicationMBean.estiloTitulo}" >
                        <p:tab title="#{i18n['producto.tab.princ.titulo']}">
                            <h:outputLabel value="#{i18n['producto.agrupacion.datos.grales']}" styleClass="subTitulo" />
                            <p:separator />
                            <h:panelGrid id="pgFormDto" columns="6" cellpadding="4">
                                <h:outputLabel for="itEmpresa" styleClass="label" value="#{i18n['producto.empresa']}"/>
                                <h:outputText id="itEmpresa" value="#{productoMBean.dto.empresaDto.descripcion}" />


                                <h:outputLabel for="itDescripcion" value="#{i18n['producto.descripcion']}" styleClass="label"/>
                                <p:inputTextarea id="itDescripcion" label="#{i18n['producto.descripcion']}" style="#{applicationMBean.estiloObligatorio}"
                                                 value="#{productoMBean.dto.descripcion}"  readonly="#{sessionMBean.accion == 3}"
                                                 required="true" maxlength="300" cols="50" rows="2" >
                                    <f:validateLength minimum="5"  maximum="300"/>
                                </p:inputTextarea>   

                                <h:outputLabel for="itDescCorta" value="#{i18n['producto.descripcion.corta']}" styleClass="label"/>
                                <p:inputTextarea id="itDescCorta" label="#{i18n['producto.descripcion.corta']}" style="#{applicationMBean.estiloObligatorio}"
                                                 value="#{productoMBean.dto.descripcionCorta}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                                 required="false" maxlength="100" cols="50" rows="2" >
                                    <f:validateLength minimum="0"  maximum="100"/>
                                </p:inputTextarea>   


                                <h:outputLabel for="itDescDetalle" value="#{i18n['producto.descripcion.detalle']}" styleClass="label"/>
                                <p:inputTextarea id="itDescDetalle" label="#{i18n['producto.descripcion.detalle']}" style="#{applicationMBean.estiloObligatorio}"
                                                 value="#{productoMBean.dto.descripcionDetalle}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                                 required="false" cols="50" rows="2" >

                                </p:inputTextarea>   

                                <h:outputLabel for="itDescIdioma1" value="#{i18n['producto.descripcion.idioma.1']}" styleClass="label"/>
                                <p:inputTextarea id="itDescIdioma1" label="#{i18n['producto.descripcion.idioma.1']}" style="#{applicationMBean.estiloObligatorio}"
                                                 value="#{productoMBean.dto.descripcionIdioma1}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                                 required="false" cols="50" rows="2" >                            
                                </p:inputTextarea>

                                <h:outputLabel for="itDescIdioma2" value="#{i18n['producto.descripcion.idioma.2']}" styleClass="label"/>
                                <p:inputTextarea id="itDescIdioma2" label="#{i18n['producto.descripcion.idioma.2']}" style="#{applicationMBean.estiloObligatorio}"
                                                 value="#{productoMBean.dto.descripcionIdioma2}"  readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                                 required="false" cols="50" rows="2" maxlength="100">                            
                                </p:inputTextarea>

                                <h:outputLabel for="itTipo" styleClass="label" value="#{i18n['producto.tipo']}"/>                    
                                <p:selectOneMenu id="itTipo" value="#{productoMBean.dto.tipoProducto}"                                   
                                                 style="#{applicationMBean.estiloObligatorio}" disabled="#{sessionMBean.accion == applicationMBean.ver}">
                                    <f:selectItems value="#{productoMBean.siTipoProducto}"/>
                                </p:selectOneMenu>  

                                <h:outputLabel for="itGrupo" styleClass="label" value="#{i18n['producto.grupo']}"/>
                                <p:selectOneMenu id="itGrupo" value="#{productoMBean.dto.grupoDto}"  converter="parametroConvert"  disabled="#{sessionMBean.accion == applicationMBean.ver}"                               
                                                 style="#{applicationMBean.estiloObligatorio}">
                                    <f:selectItems value="#{productoMBean.listaGrupos}" var="parametroDto"  itemLabel="#{parametroDto.descripcion}" itemValue="#{parametroDto}" />                        

                                </p:selectOneMenu>

                                <h:outputLabel for="itFamilia" styleClass="label" value="#{i18n['producto.familia']}"/>
                                <p:selectOneMenu id="itFamilia" value="#{productoMBean.dto.familiaDto}"  converter="parametroConvert"  disabled="#{sessionMBean.accion == applicationMBean.ver}"                               
                                                 style="#{applicationMBean.estiloObligatorio}">
                                    <f:selectItems value="#{productoMBean.listaFamilias}" var="parametroDto"  itemLabel="#{parametroDto.descripcion}" itemValue="#{parametroDto}" />                        

                                </p:selectOneMenu>


                                <h:outputLabel for="itAlmacenado" styleClass="label" value="#{i18n['producto.almacenado']}"/>                    
                                <p:selectBooleanCheckbox id="itAlmacenado" value="#{productoMBean.dto.almacenado}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>

                                <h:outputLabel styleClass="label" value="#{i18n['producto.perecible']}"/>                    
                                <p:selectBooleanCheckbox value="#{productoMBean.dto.perecible}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>

                                <h:outputLabel styleClass="label" value="#{i18n['producto.activo.fijo']}"/>                    
                                <p:selectBooleanCheckbox value="#{productoMBean.dto.activoFijo}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>

                                <h:outputLabel styleClass="label" value="#{i18n['general.label.activo']}"/>                    
                                <p:selectBooleanCheckbox value="#{productoMBean.dto.estado}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>


                                <h:outputLabel for="itProduccion" styleClass="label" value="#{i18n['producto.produccion']}"/>                    
                                <p:selectBooleanCheckbox id="itProduccion" value="#{productoMBean.dto.produccion}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>

                                <h:outputLabel for="itComercial" styleClass="label" value="#{i18n['producto.comercial']}"/>                    
                                <p:autoComplete id="itComercial" value="#{productoMBean.dto.comercialDto}" completeMethod="#{productoMBean.autoCompletarUsuario}"
                                                label="#{i18n['producto.comercial']}" readonly="#{sessionMBean.accion == applicationMBean.ver}" maxResults="10" minQueryLength="#{applicationMBean.minQueryLengthAutoComplete}" queryDelay="1" 
                                                converter="usuarioConvert" var="sn" itemLabel="#{sn.descripcion}" itemValue="#{sn}" size="50" forceSelection="true"> 
                                    <p:column style="#{applicationMBean.estiloObligatorio}" > 
                                        #{sn.rolDto.descripcion} || #{sn.descripcion}
                                    </p:column> 
                                </p:autoComplete>

                                <h:outputLabel for="itComentario" styleClass="label" value="#{i18n['general.label.comentario']}"/>
                                <p:inputTextarea id="itComentario" label="#{i18n['general.label.comentario']}" value="#{productoMBean.dto.comentario}"
                                                 readonly="#{sessionMBean.accion == applicationMBean.ver}"
                                                 required="false" maxlength="300" cols="60" rows="3" style="txtCampoObligatorio">                            
                                </p:inputTextarea>

                                <h:outputLabel styleClass="label" value="#{i18n['general.label.activo']}"/>                    
                                <p:selectBooleanCheckbox value="#{productoMBean.dto.estado}"  style="#{applicationMBean.estilo}"  disabled="#{sessionMBean.accion == applicationMBean.ver}"/>
                            </h:panelGrid>  

                            <h:outputLabel value="#{i18n['general.label.campos.auditoria']}" styleClass="subTitulo" rendered="#{productoMBean.dto.id!=null}"/>
                            <p:separator rendered="#{productoMBean.dto.id!=null}"/>
                            <h:panelGrid id="pgCamposAuditoria" columns="6" cellspacing="10" rendered="#{productoMBean.dto.id!=null}">
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.usuario.creacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.usuarioCreacionDto.descripcion}"/>
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.fecha.creacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.fechaCreacion}">
                                    <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                                </h:outputLabel>                            
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.terminal.creacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.terminalCreacion}"/>
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.usuario.modificacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.usuarioDto.descripcion}"/>
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.fecha.modificacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.fecha}">
                                    <f:convertDateTime pattern="#{applicationMBean.formatoFechaHoraSegundos}"  timeZone="#{applicationMBean.timeZone}"/>
                                </h:outputLabel>                            
                                <h:outputLabel styleClass="label" value="#{i18n['general.label.terminal.modificacion']}"/>
                                <h:outputLabel styleClass="txtCampo" value="#{productoMBean.dto.terminal}"/>
                            </h:panelGrid>

                        </p:tab>
                        <p:tab title="#{i18n['producto.tab.um']}" rendered="#{productoMBean.dto.id!=null}">

                            <h:panelGrid  columns="10" cellpadding="4" id="pgUM">
                                <p:commandButton title="#{i18n['producto.tab.um.boton.nuevo']}"
                                                 icon="ui-icon ui-icon-plus"
                                                 style="#{applicationMBean.estilosBtnNuevoDetalle}"
                                                 value="#{i18n['producto.tab.um.boton.nuevo']}"                                             
                                                 update=":tabPrincipalDeta"
                                                 oncomplete="carDialogUM.show()"
                                                 rendered="#{sessionMBean.accion != applicationMBean.ver}"
                                                 action="#{productoMBean.nuevoProductoDeta}">
                                </p:commandButton>
                            </h:panelGrid>
                            <h:panelGrid columns="1">
                                <p:dataTable id="tblUM" value="#{productoMBean.dto.listaUnidadesMedida}" var="dtoUM" paginatorPosition="top"                                     
                                             paginator="true" rows="#{sessionMBean.cantidadRegistros}"  widgetVar="widTable">                              
                                    <p:column style="text-align:center;">
                                        <h:panelGrid columns="10" cellspacing="5" styleClass="estiloPanelGrid">
                                            <p:commandButton icon="ui-icon ui-icon-search" title="#{i18n['general.button.ver.tip']}" 
                                                             update=":tabPrincipalDeta"
                                                             action="#{productoMBean.verProductoDeta}" 
                                                             oncomplete="carDialogUM.show()" ajax="true">
                                                <f:setPropertyActionListener value="#{dtoUM}" target="#{productoMBean.detaDto}" />                                                                    
                                            </p:commandButton>
                                            <p:commandButton icon="ui-icon ui-icon-pencil" title="#{i18n['general.button.editar.tip']}" 
                                                             update=":tabPrincipalDeta"
                                                             action="#{productoMBean.editarProductoDeta}" 
                                                             rendered="#{sessionMBean.accion != applicationMBean.ver}"
                                                             oncomplete="carDialogUM.show()" ajax="true">
                                                <f:setPropertyActionListener value="#{dtoUM}" target="#{productoMBean.detaDto}" />                                                                    
                                            </p:commandButton>
                                        </h:panelGrid>
                                    </p:column>
                                    <p:column headerText="#{i18n['general.label.id']}"  styleClass="general #{dto.inlinestyle}">
                                        <h:outputText value="#{dtoUM.id}" styleClass="general" />
                                    </p:column>
                                    <p:column headerText="#{i18n['producto.unidad.medida']}" styleClass="general" style="text-align: left;">
                                        <h:outputText value="#{dtoUM.unidadMedidaDto.nombre}" styleClass="general" />
                                    </p:column>
                                    <p:column headerText="#{i18n['tarifa.producto.estado']}" styleClass="general" style="text-align: left;">
                                        <h:outputText value="#{dtoUM.estado? 'ACTIVO' : 'INACTIVO'}" styleClass="general" />
                                    </p:column>
                                    <p:column headerText="#{i18n['producto.precio.compra']}" styleClass="general" style="text-align: right;">
                                        <h:outputText value="#{dtoUM.monedaCompraDto.simbolo} #{dtoUM.precioCompra}" styleClass="txtCampo" >
                                            <f:convertNumber pattern="#{applicationMBean.formatoMontos}" />
                                        </h:outputText>
                                    </p:column>  
                                    <p:column headerText="#{i18n['producto.precio.venta']}" styleClass="general" style="text-align: right;">
                                        <h:outputText value="#{dtoUM.monedaVentaDto.simbolo} #{dtoUM.precioVenta}" styleClass="txtCampo" >
                                            <f:convertNumber pattern="#{applicationMBean.formatoMontos}" />
                                        </h:outputText>
                                    </p:column> 
                                    <p:column headerText="#{i18n['producto.sku']}"  styleClass="general" style="text-align: left;">
                                        <h:outputText value="#{dtoUM.sku}" styleClass="general"/>                        
                                    </p:column>                            
                                    <p:column headerText="#{i18n['producto.stock.actual']}" styleClass="general" style="text-align: right;">
                                        <h:outputText value="#{dtoUM.stockActual}" styleClass="txtCampo" >
                                            <f:convertNumber pattern="#{applicationMBean.formatoMontos}" />
                                        </h:outputText>
                                    </p:column>  
                                    <p:column style="text-align:left;" styleClass="general">
                                        <f:facet name="header">
                                            <h:outputText value="#{i18n['general.label.fecha.creacion']}" />
                                        </f:facet>
                                        <h:outputText value="#{dtoUM.fechaCreacion}">
                                            <f:convertDateTime pattern="#{applicationMBean.formatoFechaHora}"  timeZone="#{applicationMBean.timeZone}"/> 
                                        </h:outputText>                                
                                    </p:column>
                                    <p:column style="text-align:left;" styleClass="general">
                                        <f:facet name="header">
                                            <h:outputText value="#{i18n['general.label.fecha']}" />
                                        </f:facet>
                                        <h:outputText value="#{dtoUM.fecha}">
                                            <f:convertDateTime pattern="#{applicationMBean.formatoFechaHora}"  timeZone="#{applicationMBean.timeZone}"/> 
                                        </h:outputText>                                
                                    </p:column> 
                                </p:dataTable>
                            </h:panelGrid>
                        </p:tab>
                    </p:tabView>

                    <f:facet name="footer">
                        <p:commandButton title="#{i18n['general.button.guardar.tip']}" accesskey="#{applicationMBean.keyGuardar}" ajax="false"
                                         icon="ui-icon ui-icon-disk" rendered="#{sessionMBean.accion != applicationMBean.ver}"
                                         style="#{applicationMBean.estilosBtnGuardar}"
                                         onclick="return confirm('#{i18n.general_mensaje_confirmacion}');"
                                         value="#{i18n['general.button.guardar']}" 
                                         action="#{productoMBean.guardar}">                                    
                        </p:commandButton>                        

                        <p:commandButton title="#{i18n['general.button.atras.tip']}" accesskey="#{applicationMBean.keyRetroceder}" ajax="false"
                                         icon="ui-icon ui-icon-arrowreturnthick-1-w" immediate="true"
                                         value="#{i18n['general.button.atras']}" 
                                         style="#{applicationMBean.estilosBtnRetroceder}"
                                         action="#{productoMBean.retroceder}">                                    
                        </p:commandButton>

                        <p:commandButton title="#{i18n['bitacora.ver.historial']}"
                                         icon="ui-icon ui-icon-calculator"
                                         value="#{i18n['bitacora.ver.historial']}"                                                                                                           
                                         ajax="true"
                                         style="#{applicationMBean.estilosBtnHistorial}"
                                         rendered="#{productoMBean.dto.id!=null}"
                                         oncomplete="dlgBitacoraEntidad.show()"                                                       
                                         update=":frmPopupBitacoras:pgFormPopupBitacoras"
                                         actionListener="#{productoMBean.verBitacora}">                                    
                        </p:commandButton>  

                        <p:commandButton title="#{i18n['ver.archivos.boton.tip']}"
                                         icon="ui-icon ui-icon-folder-open"
                                         value="#{i18n['ver.archivos.boton']}"   
                                         style="#{applicationMBean.estilosBtnArchivos}"
                                         ajax="true"
                                         rendered="#{productoMBean.dto.id!=null}"
                                         oncomplete="dlgArchivoEntidad.show()"                                                       
                                         update=":frmPopupArchivos:pgFormPopupArchivos"
                                         actionListener="#{productoMBean.verArchivos}">                                    
                        </p:commandButton>  

                        <p:commandButton title="#{i18n['key.entidad.propietario']}"
                                         icon="ui-icon ui-icon-locked"
                                         value="#{i18n['key.entidad.propietario']}"                                                                                                           
                                         ajax="true"
                                         style="#{applicationMBean.estilosBtnPropietarios}"
                                         rendered="#{productoMBean.dto.id!=null}"
                                         oncomplete="dlgPropietariosEntidad.show()"                                                       
                                         update=":frmPopupPropietarios:pgFormPopupPropietarios"
                                         actionListener="#{productoMBean.verPropietario}">                                    
                        </p:commandButton>  

                        <p:commandButton title="#{i18n['general.button.nuevo.tip']}" accesskey="#{applicationMBean.keyNuevo}"
                                         icon="ui-icon ui-icon-plus" rendered="#{productoMBean.dto.id!=null}"
                                         value="#{i18n['general.button.nuevo']}" 
                                         style="#{applicationMBean.estilosBtnNuevo}" 
                                         ajax="false"                                        
                                         actionListener="#{productoMBean.nuevo}">                                    
                        </p:commandButton>
                    </f:facet>
                </p:panel>
            </h:form>
            <p:dialog id="idDlgBitacoraEntidad" header="#{i18n['bitacora.titulo']}" widgetVar="dlgBitacoraEntidad" resizable="false"  
                      width="900" height="350" modal="true">                        
                <ui:include src="/pages/bitacora/bitacoras.xhtml"/> 
            </p:dialog>
            <p:dialog id="idDlgArchivoEntidad" header="#{i18n['archivo.titulo']}" widgetVar="dlgArchivoEntidad" resizable="false"  
                      width="1200" height="400" modal="true">                        
                <ui:include src="/pages/archivo/archivos.xhtml" /> 
            </p:dialog>
            <p:dialog id="dialogTarifa" header="#{i18n['popup.tarifa.producto']}" widgetVar="carDialogTarifa" resizable="false"
                      width="700" height="200" modal="true">
                <p:messages id="msjDialogTarifa" showDetail="false" autoUpdate="true" />
                <ui:include src="/pages/conf/producto/tarifaProducto.xhtml" />
            </p:dialog>
            <p:dialog id="idDlgPropietarioEntidad" header="#{i18n['entidad.titulo.propietarios']}" widgetVar="dlgPropietariosEntidad" resizable="false"  
                      width="500" height="350" modal="true">            
                <p:messages id="msjDialogPropietarios" showDetail="false" autoUpdate="true" />            
                <ui:include src="/pages/propietario/propietario.xhtml" /> 
            </p:dialog>
            <p:dialog id="dialogMaterial" header="#{i18n['popup.material.producto']}" widgetVar="carDialogMaterial" resizable="false"
                      width="700" height="350" modal="true">
                <p:messages id="msjDialogMaterial" showDetail="false" autoUpdate="true" />
                <ui:include src="/pages/conf/producto/material.xhtml" />
            </p:dialog>
            <p:dialog id="dialogProveedor" header="#{i18n['popup.proveedor.producto']}" widgetVar="carDialogProveedor" resizable="false"
                      width="800" height="350" modal="true">
                <p:messages id="msjDialogProveedor" showDetail="false" autoUpdate="true" />
                <ui:include src="/pages/conf/producto/proveedor.xhtml" />
            </p:dialog>
            <p:dialog id="dialogUM" header="#{i18n['producto.popup.deta.titulo']}" widgetVar="carDialogUM" resizable="false"
                      width="850" height="600" modal="true">
                <p:messages id="msjDialogUM" showDetail="false" autoUpdate="true" />
                <ui:include src="/pages/conf/producto/productoDeta.xhtml" />
            </p:dialog>
        </ui:define>
    </ui:composition>
</html>
